package com.shuqi.statistics;

import java.util.HashMap;

import android.content.Context;

import com.shuqi.application.ShuqiApplication;
import com.umeng.analytics.MobclickAgent;

/**
 * 统计 目前我们使用的是友盟统计{行为统计、页面统计、session统计、错误统计}
 * 
 * @author hxp
 * 
 */
public class StatisticsUtils {

    public static final long SESSION_INTERVAL = 5*60*1000; // session 统计间隔5分钟
    public static final boolean IS_ACTIVITY_STATISTICS = true; // 是否默认打开页面统计
    public static final boolean IS_AUTO_LOCATION = false; // 是否允许收集地理位置信息
    public static final boolean IS_DEBUG_MODE = false;// 是否是debug模式

    /**
     * 统计初始化，初始化基本设置
     */
    public static void statisticsInit() {
        MobclickAgent.setSessionContinueMillis(SESSION_INTERVAL);
        MobclickAgent.openActivityDurationTrack(IS_ACTIVITY_STATISTICS);
        MobclickAgent.setAutoLocation(IS_AUTO_LOCATION);
        MobclickAgent.setDebugMode(IS_DEBUG_MODE);
        MobclickAgent.updateOnlineConfig(ShuqiApplication.getContext());
    }

    /**
     * Activity 没有参数的自定义事件统计
     * 
     * @param context
     * @param eventId
     */
    public static void onEvent(Context context, String eventId) {
        MobclickAgent.onEvent(context, eventId);
    }

    /**
     * Activity 带有参数的自定义事件
     * 
     * @param context
     * @param eventId
     * @param params
     */
    public static void onEvent(Context context, String eventId, HashMap<String, String> params) {
        MobclickAgent.onEvent(context, eventId, params);
    }

    /**
     * Activity 没有参数的计时自定义事件 ---开始
     * 
     * @param context
     * @param eventId
     * @param mBookContentInfo
     */
    public static void onEventBegin(Context context, String eventId) {
        MobclickAgent.onEventBegin(context, eventId);
    }

    /**
     * Activity 没有参数的计时自定义事件 ---结束
     * 
     * @param context
     * @param eventId
     * @param mBookContentInfo
     */
    public static void onEventEnd(Context context, String eventId) {
        MobclickAgent.onEventEnd(context, eventId);
    }

    /**
     * 没有参数的自定义事件统计
     * 
     * @param context
     * @param eventId
     */
    public static void onEvent(String eventId) {
        MobclickAgent.onEvent(ShuqiApplication.getContext(), eventId);
    }

    /**
     * 带有参数的自定义事件
     * 
     * @param context
     * @param eventId
     * @param params
     */
    public static void onEvent(String eventId, HashMap<String, String> params) {
        MobclickAgent.onEvent(ShuqiApplication.getContext(), eventId, params);
    }

    /**
     * 没有参数的计时自定义事件 ---开始
     * 
     * @param context
     * @param eventId
     * @param mBookContentInfo
     */
    public static void onEventBegin(String eventId) {
        MobclickAgent.onEventBegin(ShuqiApplication.getContext(), eventId);
    }

    /**
     * 没有参数的计时自定义事件 ---结束
     * 
     * @param context
     * @param eventId
     * @param mBookContentInfo
     */
    public static void onEventEnd(String eventId) {
        MobclickAgent.onEventEnd(ShuqiApplication.getContext(), eventId);

    }

    /**
     * 统计页面时长 onResume
     * 
     * @param context
     */
    public static void onResume(Context context) {
        MobclickAgent.onResume(context);
    }

    /**
     * 统计页面时长 onPause
     * 
     * @param context
     */
    public static void onPause(Context context) {
        MobclickAgent.onPause(context);
    }
    
    /**
     * 统计页面路径 onResume
     * 
     * @param context
     */
    public static void onPageStart(Object currentPage) {
        MobclickAgent.onPageStart(currentPage.getClass().getSimpleName());
    }
    /**
     * 统计页面路径 onPause
     * 
     * @param context
     */
    public static void onPageEnd(Object currentPage) {
        MobclickAgent.onPageEnd(currentPage.getClass().getSimpleName());
    }
}
